Ext.namespace('AttivitaProc.unitloc');

	
AttivitaProc.unitloc.formedit = function(config){
	
	var _this = this;
	
	var idattivita = {xtype:'hidden', name:'idattivita'}
	var attivitalocale = {xtype:'hidden', name:'attivitalocale', id:'idattivitalocale'}
	var idanagrich = {xtype:'hidden', name:'id_anagrich'}
	var idente = {xtype:'hidden', name:'id_ente', value: appContext.currentEnte}
	var idprocedure = {xtype:'hidden', name:'idprocedure', value: appContext.currentProcedure}
	//var idlegrapp = {xtype:'hidden', name:'id_legrapp'}

	var itemDefaults = { anchor:'99%'}

// ############## TAB 0 #####################


	var denominazione = {xtype:'textfield',  name:'ragsociale', fieldLabel:'Denominazione', allowBlank:false}
	
	var via = {xtype:'textfield',  name:'via', fieldLabel:'Via', allowBlank:false, width:340}
	  
	var civico = {xtype:'textfield',  name:'nciv', fieldLabel:'Numero civico', allowBlank:false, width:50}

	var cap = {xtype:'textfield',  name:'cap', fieldLabel:'CAP', allowBlank:false, width:60, maxLength:5, minLength:5, maxLengthText:'La lunghezza è di 5 caratteri', minLengthText:'La lunghezza è di 5 caratteri'}

	var citta = {xtype:'textfield',  name:'citta', fieldLabel:'Città', labelWidth: 50, allowBlank:false, width:280}

	var provincia = {xtype:'textfield',  name:'prov', fieldLabel:'Provincia', allowBlank:false, width:55, maxLength:2, minLength:2, maxLengthText:'La lunghezza è di 2 caratteri', minLengthText:'La lunghezza è di 2 caratteri'}

	
	
	var colDenominazione = {
			layout:'form',
			columnWith:1,
			border:false,
			autoheight:true,
			style:'padding:10px 5px 10px 10px',
			items:[denominazione],
			defaults: itemDefaults
		} 
		
//		var panRagSoc = {
//			layout:'column',
//			autoheight:true,
//			items:[colDenominazione],
//			style:'padding:10px 5px 10px 10px',
//			defaults: itemDefaults,
//		
//		}


	var colSxIndir = {
		layout:'form',
		columnWith:0.7,
		labelWidth:30,
		border:false,
		autoheight:true,
		//padding:'10px',
		items:[idattivita, idprocedure, idente, attivitalocale, via],
		defaults: itemDefaults
	}
	var colDxIndir = {
		layout:'form',
		columnWith:0.3,
		border:false,
		autoheight:true,
		style:'padding: 0px 0px 0px 25px',
		items:[civico],
		defaults: itemDefaults
	}
	var panIndir = {
		layout:'column',
		autoheight:true,
		style:'padding:5px 5px 5px 10px',
		//padding:'5px 10px 5px 10px',
		items:[colSxIndir, colDxIndir],
		defaults: itemDefaults
	}


	var colSxCap = {
		labelWidth: 30,
		layout:'form',
		columnWith:0.3,
		border:false,
		autoheight:true,
		//style:'padding:10px',
		items:[cap],
		defaults: itemDefaults
	}
	var colCenterCitta = {
		labelWidth: 40,
		layout:'form',
		columnWith:0.5,
		border:false,
		autoheight:true,
		style:'padding:0px 0px 0px 10px',
		items:[citta],
		defaults: itemDefaults
	}
	var colDxProv = {
		labelWidth: 60,
		layout:'form',
		columnWith:0.2,
		border:false,
		autoheight:true,
		style:'padding:0px 0px 0px 10px',
		items:[provincia],
		defaults: itemDefaults
	}
	var panCapCitta = {
		layout:'column',
		style:'padding:5px 10px 5px 10px',
		autoheight:true,
		items:[colSxCap, colCenterCitta, colDxProv],
		defaults: itemDefaults
	}



//	var descprod = {xtype:'textfield', name:'cicloprod', fieldLabel:'Descrizione Ciclo Produttivo', allowBlank:true, width:450}
//	var colCicloP = {
//		layout:'form',
//		columnWith:1,
//		border:false,
//		autoheight:true,
//		style:'padding:0px 10px 0px 10px',
//		items:[descprod],
//		defaults: itemDefaults
//	} 
//	var panCicloP = {
//		layout:'column',
//		autoheight:true,
//		items:[colCicloP],
//		defaults: itemDefaults,
//	
//	}

	var naddetti = {xtype:'numberfield',  name:'naddetti', fieldLabel:'Numero addetti', allowBlank:false}

	var panNaddetti = {
		layout:'form',
		style:'padding:10px 10px 5px 10px',
		autoheight:true,
		items:[naddetti],
		defaults: itemDefaults
	}

	var istat =  {xtype:'textfield',  name:'istat_principale', fieldLabel:'Codice ISTAT principale', allowBlank:true}

	var panIstat = {
		layout:'form',
		style:'padding:5px 10px 5px 10px',
		autoheight:true,
		items:[istat],
		defaults: itemDefaults
	}

// ------------------------------------------
	
// ############## TAB 1 #####################




	
	var dsIstatSecondUl = new Ext.data.JsonStore({
		url:'',
		fields:['codice','descrizione']

	})
	
	var cmIstatSecondUl = new Ext.grid.ColumnModel([
		{ header:'Codice ISTAT', dataIndex:'codice', width:100, editor: new Ext.form.TextField({ allowBlank:false})},
		{ header:'Descrizione', dataIndex:'descrizione', width:350, editor: new Ext.form.TextField({ allowBlank:false})}
	]);

	
	var insertIstatSecondUl = Ext.data.Record.create([
		{name:'codice', type:'string'},
		{name:'descrizione', type:'string'}
	])


	var gridIstatSecondUl = new Ext.grid.EditorGridPanel({
		cm: cmIstatSecondUl,
		ds: dsIstatSecondUl,		
		width:600,
		height:220,
		style:'padding:10px',
		title:'Codici ISTAT Secondari',
		sm: new Ext.grid.RowSelectionModel({singleSelect: true}),
		frame:true,
//		clicksToEdit:1,
		tbar:[{
			text:'inserisci',
			handler: function(){
				var nuovo = new insertIstatSecondUl({
					codice:'',
					descrizione:''

				});
				gridIstatSecondUl.stopEditing();
				dsIstatSecondUl.insert(0,nuovo);
				gridIstatSecondUl.startEditing(0,0);
			}
		},{
			text:'elimina',
			handler: function(){

				var selModel = gridIstatSecondUl.getSelectionModel();
				var selection = selModel.getSelected();

				
				deletedTmp.push(selection.data);
				dsIstatSecondUl.remove(selection);
				//console.dir(deletedTmp);			
			}
		
		}]

	})



// -----------------------------------------

	
// ############## TAB 2 #####################

	var cicloProd = {xtype:'htmleditor', height:100, width:400, enableFont: false, enableLinks: false, enableSourceEdit: false, name:'desc_cicloprod', fieldLabel:'Ciclo produzione - descrizione'}
	
	var note = {xtype:'htmleditor', height:100, width:400, enableFont: false, enableLinks: false, enableSourceEdit: false, name:'note', fieldLabel:'Note'} 


// ------------------------------------------




	var datiGenerali = {
		//labelWidth:170,
		title:'Dati generali',
//		xtype:'form',
		items:[colDenominazione, panIndir, panCapCitta,  panNaddetti, panIstat],
		defaults:{anchor:'99%'}
	}

	var datiSpec = {
		labelWidth:170,
		title:'Altri dati',
		items:[ gridIstatSecondUl],
		defaults:{anchor:'98%'}
	
	}

	var datiNote = {
		title:'Note',
		items:[cicloProd, note],
		defaults:{anchor:'98%'}
	
	}


	var tabpanel = new Ext.TabPanel({
		autoHeight:true,
		deferredRender:false,   //ATTENZIONE IMPORTANTE rende tutti i tab e i controlli relativi disponibili subito! 
		items: [datiGenerali, datiSpec, datiNote],
		activeTab: 0,
		defaults:{layout: 'form', frame: true, autoHeight:true}
	})

	
	
	this.saveFormData = function(){

//		var recordSaving = _this.getForm().getValues();
//		var aIstatRecords = [];
//		Ext.each(dsIstatSecondUl.getModifiedRecords(), function(record){aIstatRecords.push(record.data)}); //carica l'array 'arecords'
//		recordSaving.istatSecondari = aIstatRecords;
//  		var dataparams = Ext.util.JSON.encode(recordSaving)
//		Ext.Ajax.request({
//			url:'/commongest/CommonServlet/anagditte/salvaAttivita',
//			method:'POST',
//			params:{json:dataparams},
//			
//			success: function(resp,opt){
//				var respObj = Ext.decode(resp.responseText)
//				if(respObj.success){
//				 	updatedata = true;
//				 	dsIstatSecondUl.commitChanges();
//				 	Ext.MessageBox.alert('Salvataggio avvenuto');
//				} else Ext.MessageBox.alert('dati non salvati!');
//			},
//			failure: function(resp, opt){
//				Ext.MessageBox.alert('dati non salvati!');
//			}
//		});	
//		alert("salvo?")
		
		
		var recordSaving = _this.getForm().getValues();

		var aIstatRecords = [];

		Ext.each(dsIstatSecondUl.getModifiedRecords(), function(record){aIstatRecords.push(record.data)}); //carica l'array 'arecords'


		//carico tutte le variazioni 
		recordSaving.istatSecondari = aIstatRecords;
		recordSaving.istatEliminati = deletedTmp;


		var dataparams = Ext.util.JSON.encode(recordSaving)




		Ext.Ajax.request({
			url:'/commongest/CommonServlet/anagditte/salvaAttivita',
			method:'POST',
			params:{json:dataparams},

			success: function(resp,opt){
				var respObj = Ext.decode(resp.responseText)
				if(respObj.success){
					updatedata = true;
					dsIstatSecondUl.commitChanges();
					_this.fireEvent('unitLocaladded', _this);
					Ext.MessageBox.alert('Salvataggio avvenuto');
				} else Ext.MessageBox.alert('dati non salvati!');
			},
			failure: function(resp, opt){
				Ext.MessageBox.alert('dati non salvati!');
			}

		});	

		_this.clearTmp();
		
//		console.log('id attivita - unita locali:'+Ext.getCmp('idattivitalocale').getValue())
//		Ext.getCmp('attivitaForm_UnitaLocali').getStore().load({params: {attivitalocale: Ext.getCmp('idattivitalocale').getValue(), id_ente: appContext.currentEnte}});
		
	}

	var deletedTmp = [];
	
	
    this.clearTmp = function(){
    	deletedTmp=[];

	}
	                  

	var defaults = {
			
		items:[tabpanel],
		//defaults: formDefaults,
		monitorResize:true,
		autoHeight: true,
		frame:true,
		setIdAttivita: function(idattivita){
			Ext.getCmp('idattivitalocale').setValue(idattivita);
//			console.log(idattivita)
 
		},
// 		updateCurrentRecord: function(){
// 			_this.getForm().updateRecord(appContext.currentAnagRecord);
// 			appContext.currentAnagRecord.commit();
// 			
// 		},
 		setRecord: function(record){
 			_this.getForm().loadRecord(record) //espongo la funzione nativa per caricare il form con il record	

 			
			var normRec = [];
			for(key in record.data.istat_secondari ){
				normRec.push( {codice:key,descrizione:record.data.istat_secondari[key]} );
			}
			dsIstatSecondUl.loadData(normRec)
 			
		
		}
		
		
	}

	AttivitaProc.unitloc.formedit.superclass.constructor.call(this, Ext.apply({},  config , defaults))
}

	
Ext.extend(AttivitaProc.unitloc.formedit, Ext.form.FormPanel);

//registro l'oggetto EditForm
Ext.reg('procformeditUl', AttivitaProc.unitloc.formedit)
